from pgtools.plugins.db.DBManager import DBManager

# 1 创建对象
db = DBManager()
# 2 连接到工作目录下的数据库db.sqlite3，根据自己的目录进行修改
db.connect('D:\pysrc\pro3\db\db.sqlite3')
"""
完成以下任务：
1. 在user表中插入如下数据
cols = ('number', 'password', 'online', 'role' , 'dep')
values = [('3001', '3001', 0, 'admin', 1),
          ('3002', '3002', 0, 'admin', 2),
          ('3003', '3003', 0, 'user', 3),
          ('3004', '3004', 0, 'user', 4),]
2. 查找number列大于3002的用户，返回所有列。
3. 查找number列中包含字符"3"的用户，返回number列。
4. 查找1队所有用户，返回用户number列
5. 修改role为admin的用户的密码为1111。
6. 删除number列中以字符"3"结尾的用户。
注意：将>>>后输入内容粘贴作业内容处
"""
###########################################
#例子1
db.select('user')
#例子2
r = db.select('user')
for row in r:
    print(row)
#1题
cols = ('number', 'password', 'online', 'role' , 'dep')
values = [('3001', '3001', 0, 'admin', 1),
          ('3002', '3002', 0, 'admin', 2),
          ('3003', '3003', 0, 'user', 3),
          ('3004', '3004', 0, 'user', 4),]
# db.insert_batch('user', cols, values)
#2题
print(db.select('user', [], [['number', '>', '3002']]))
print(db.select('user', condition=[['number', '>', '3002']]))
#3题
print(db.select('user', ['number'], [['number', 'like', '%3%']]))
#4题
#获取1队id
dep =[]
d1 = db.select('department',[],{'name': '1队'}).as_dict()[0]
dep.append(d1['id']) # 保存1队id
d1x = db.select('department',[],{'parent': d1['id']})
for i in d1x: dep.append(i['id']) # 保存1队下所有单位id
print(dep)
user_list = []
for d in dep: 
    for row in db.select('user', ['number'], {'dep': d}):
        user_list.append(row['number'])
print(user_list)
user_list =[row['number'] for d in dep 
            for row in db.select('user', ['number'], {'dep': d})]
print(user_list)
user_list.sort()
print(user_list)
#  
dep =[]
d1 = db.select('department',[],{'name': '1队'}).as_dict()[0]
dep.append(d1['id']) # 保存1队id
d1x = db.select('department',[],{'parent': d1['id']})
for i in d1x: dep.append(i['id']) # 保存1队下所有单位id
print(dep)
print(db.select('user', ['number'], [['dep', 'in', tuple(dep)]]))
print(db.selectx(['user', 'department'], ['user.number'], 
                 [['user.dep', 'department.id'], 
                  ['department.name', 'like', '1队%']]))
#5题
db.update('user', [['role', 'admin']], password='1111')
db.update('user', {'role': 'admin'}, password='1111')
#6题
# db.delete('user', [['number', 'like', '%3']])
###########################################
